package com.zelix;

import java.io.*;
import java.util.Hashtable;
import java.util.Vector;

public class ws extends is
        implements sm {

    zs i;
    zs j;
    private static String z;

    ws(int i1, jm jm, zs zs1, zs zs2, qy qy1) {
        super(i1, jm);
        i = zs1;
        j = zs2;
        if (qy1 != null) {
            qy1.b(zs1, this);
            qy1.b(zs2, this);
        }
    }

    ws(et et, zs zs1, zs zs2) {
        super(((is) (et)).e, ((is) (et)).f);
        i = zs1;
        j = zs2;
    }

    void a(Hashtable hashtable) {
        String s = j.b();
        String s1 = is.a(s, hashtable);
        if (s1 != s)
            j.a(s1);
    }

    public void a(zs zs1, zs zs2) {
        label0:
        {
            if (i == zs1) {
                i = zs2;
                if (!is.g)
                    break label0;
            }
            if (j == zs1)
                j = zs2;
        }
    }

    public ws a(int i1, qy qy1) {
        return new ws(i1, super.f, i, j, qy1);
    }

    public String h() {
        String s2;
        Vector vector;
        int i1;
        boolean flag;
        flag = is.g;
        String s = j.h();
        String s1 = i.h();
        s2 = is.e(s) + " " + s1;
        if (s.indexOf('(') == 0) {
            s2 = s2 + "(";
            vector = is.b(s);
            for (i1 = 0; i1 < vector.size(); i1++) {
                s2 = s2 + is.e((String) vector.elementAt(i1)) + (i1 >= vector.size() - 1 ? "" : z);
            }
            s2 = s2 + ")";
        }
        return s2;
    }

    public String b() {
        return j.b();
    }

    zs a() {
        return j;
    }

    String m() {
        return i.h() + j.h();
    }

    public String n() {
        return i.b();
    }

    zs b() {
        return i;
    }

    public String k() {
        String s2;
        Vector vector;
        int i1;
        boolean flag;
        flag = is.g;
        String s = i.h();
        String s1 = j.h();
        s2 = s;
        if (s1.indexOf('(') == 0) {
            s2 = s2 + "(";
            vector = is.b(s1);
            for (i1 = 0; i1 < vector.size(); i1++) {
                s2 = s2 + is.e((String) vector.elementAt(i1)) + (i1 >= vector.size() - 1 ? "" : z);
            }
            s2 = s2 + ")";
        }
        return s2;
    }

    public int l() {
        return 12;
    }

    void b(Hashtable hashtable) {
        hashtable.put(i, this);
        hashtable.put(j, this);
    }

    public final void a(String s) {
        i.a(s);
    }

    static xs b(int i1, jb jb, jm jm)
            throws IOException {
        jb.skipBytes(4);
        return xs.a(jm, 1);
    }

    protected void a(DataOutputStream dataoutputstream)
            throws IOException {
        dataoutputstream.writeByte(12);
        dataoutputstream.writeShort(i.j());
        dataoutputstream.writeShort(j.j());
    }

    protected void a(DataOutputStream dataoutputstream, Hashtable hashtable)
            throws IOException {
        boolean flag;
        label0:
        {
            flag = is.g;
            dataoutputstream.writeByte(12);
            zs zs1 = (zs) hashtable.get(i);
            if (zs1 != null) {
                dataoutputstream.writeShort(zs1.j());
                if (!flag)
                    break label0;
            }
            dataoutputstream.writeShort(i.j());
        }
        label1:
        {
            zs zs2 = (zs) hashtable.get(j);
            if (zs2 != null) {
                dataoutputstream.writeShort(zs2.j());
                if (!flag)
                    break label1;
            }
            dataoutputstream.writeShort(j.j());
        }
    }

    private static String z(char[] chs) {
        byte key = 0;
        for (int i = 0; i < chs.length; i++) {
            switch (i % 5) {
                case 0:
                    key = 0x34;
                    break;
                case 1:
                    key = 7;
                    break;
                case 2:
                    key = 61;
                    break;
                case 3:
                    key = 89;
                    break;
                case 4:
                    key = 22;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static {
        z = z("\030'".toCharArray());
    }
}